package com.ruoyi.fun.mapper;

import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.ruoyi.fun.domain.EcCart;

/**
 * 购物车Mapper接口
 * 
 * @author ruoyi
 * @date 2025-08-06
 */
public interface EcCartMapper 
{
    /**
     * 查询购物车
     * 
     * @param cartId 购物车主键
     * @return 购物车
     */
    public EcCart selectEcCartByCartId(Long cartId);

    /**
     * 查询购物车列表
     * 
     * @param ecCart 购物车
     * @return 购物车集合
     */
    public List<EcCart> selectEcCartList(EcCart ecCart);

    /**
     * 新增购物车
     * 
     * @param ecCart 购物车
     * @return 结果
     */
    public int insertEcCart(EcCart ecCart);

    /**
     * 修改购物车
     * 
     * @param ecCart 购物车
     * @return 结果
     */
    public int updateEcCart(EcCart ecCart);

    /**
     * 删除购物车
     * 
     * @param cartId 购物车主键
     * @return 结果
     */
    public int deleteEcCartByCartId(Long cartId);
    
    /**
     * 删除购物车（带组织ID）
     * 
     * @param cartId 购物车主键
     * @param orgId 组织ID
     * @return 结果
     */
    public int deleteEcCartByCartIdAndOrgId(@Param("cartId") Long cartId, @Param("orgId") Long orgId);

    /**
     * 批量删除购物车
     * 
     * @param cartIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteEcCartByCartIds(Long[] cartIds);
    
    /**
     * 批量删除购物车（带组织ID）
     * 
     * @param cartIds 需要删除的数据主键集合
     * @param orgId 组织ID
     * @return 结果
     */
    public int deleteEcCartByCartIdsAndOrgId(@Param("array") Long[] cartIds, @Param("orgId") Long orgId);

    /**
     * 根据CartID和组织ID查询Cart
     * 
     * @param cartId Cart主键
     * @param orgId 组织ID
     * @return Cart
     */
    public EcCart selectEcCartByCartIdAndOrgId(@Param("cartId") Long cartId, @Param("orgId") Long orgId);

    /**
     * 根据组织ID查询Cart列表
     * 
     * @param eccart Cart
     * @param orgId 组织ID
     * @return Cart集合
     */
    public List<EcCart> selectEcCartListByOrgId(@Param("eccart") EcCart eccart, @Param("orgId") Long orgId);
}
